/**
 * $version:  0.1 
 * $Date: 2012-04-05 
 *
 * Copyright (C) 2010-2012 Jawa Software. All rights reserved.
 *
 */

package org.jawa;

import java.util.Date;

import org.jawa.util.JawaGlobals;

/**
 * 当前服务器的快照信息,用于显示服务器的状态信息.
 *
 */
public class JawaServerInfo {

	/**
	 * 启动时间
	 */
	private Date startDate;
	/**
	 * 服务器域名
	 */
	private String domain;
	/**
	 * 服务器主机名
	 */
	private String hostname;
	/**
	 * 服务器版本信息
	 */
	private Version ver;

	/**
	 * 构造函数
	 * @param domain     服务器域名
	 * @param hostname   服务器主机名
	 * @param version    服务器版本信息
	 * @param startDate  启动时间
	 * @throws
	 */
	public JawaServerInfo(String domain, String hostname, Version version, Date startDate) {
		this.domain = domain;
		this.hostname = hostname;
		this.ver = version;
		this.startDate = startDate;
	}

	/**
	 * 获取服务器版本信息
	 * @return 返回服务器版本对象
	 */
	public Version getVersion() {
		return ver;
	}

	/**
	 * 获取域名
	 * @return 返回域名
	 */
	public String getName() {
		return getDomain();
	}

	/**
	 * 设置域名
	 * @param serverName
	 */
	public void setName(String serverName) {
		setDomain(serverName);
	}

	/**
	 * 获取主机名
	 * @return 返回主机名
	 */
	public String getHostname() {
		return hostname;
	}

	/**
	 * 获取域名
	 * @return 返回String型的域名
	 */
	public String getDomain() {
		return domain;
	}

	/**
	 * 设置服务器域名，如果原配置中有已设置则先删除后再设置
	 * @param domainName 域名
	 */
	public void setDomain(String domainName) {
		this.domain = domainName;
		if (domainName == null) {
			JawaGlobals.deleteProperty("server.domain");
		} else {
			JawaGlobals.setProperty("server.domain", domainName);
		}
	}

	/**
	 * 服务器最后启动时间
	 * @return 返回<b>Date</b>型的时间
	 */
	public Date getLastStarted() {
		return startDate;
	}

}